export interface InboundManageDTO {
  id?: string;
  inboundOrderNumber: string;
  inboundType: string;
  state: number;
  inboundDate: string;
  warehouseName: string;
  inboundGood: string;
  attn: string;
  inboundQuantity: number;
  inboundAmount: number;
  makeSingle: string;
  makeSingleTime: string;
  contactPhone?: string;
  relatedOrderNo?: string;
  supplierName?: string;
  contactPerson?: string;
  reviewers?: string;
  reviewTime?: string;
  details?: InboundDetailDto[];
  files?: any[];
}

export interface CreateUpdateInboundManageDTO {
  inboundOrderNumber: string;
  inboundType: string;
  state: number;
  inboundDate: string;
  warehouseName: string;
  inboundGood: string;
  attn: string;
  inboundQuantity: number;
  inboundAmount: number;
  makeSingle: string;
  makeSingleTime: string;
  details: CreateUpdateInboundDetailDto[];
  goodsNumber: number;
  contactPhone?: string;
  relatedOrderNo?: string;
  supplierName?: string;
  contactPerson?: string;
  reviewers?: string;
  reviewTime?: string;
  files?: any[];
}

export interface InboundDetailDto {
  id?: string;
  inboundManageId?: string;
  productId: string;
  productName: string;
  productCode: string;
  productType: string;
  model: string;
  unit: string;
  location: string;
  unitPrice: number;
  quantity: number;
  amount: number;
  stockBefore: number;
  stockAfter: number;
  batchNumber: string;
  productionDate: string;
  remarks: string;
}

export interface CreateUpdateInboundDetailDto {
  productId: string;
  productName: string;
  productCode: string;
  productType: string;
  model: string;
  unit: string;
  location: string;
  unitPrice: number;
  quantity: number;
  amount: number;
  stockBefore: number;
  stockAfter: number;
  batchNumber: string;
  productionDate: string;
  remarks: string;
}

export interface ProductDto {
  id: string;
  productName: string;
  productCode: string;
  productType: string;
  model: string;
  unit: string;
  quantityOnHand: number;
}

export interface InboundOperationLogDto {
  id?: string;
  inboundManageId: string;
  operatorName: string;
  operationType: string;
  description: string;
  creationTime: string;
}

export interface ApprovalHistoryDto {
  id?: string;
  documentId: string;
  documentType: string;
  operatorName: string;
  operationType: string;
  approvalResult: string;
  approvalComment: string;
  creationTime: string;
} 